1. Field of the Invention
This invention relates to devices and methods to create highlight effects upon all or a selected portion of a multimedia (including video, audio and/or graphics) data stream. More particularly, the present invention relates to devices and methods to create highlight effects upon selected portions of a multimedia data stream on the fly without modifying the original multimedia data (pixel information, for example) stored in memory.
2. Description of the Related Art
The convergence of personal computer and entertainment devices has given rise to hybrid devices that combine the attributes of both. For example, users now may use the same device to run conventional personal computer applications and to watch movies or other video clips, for example. Often, users of such devices use a cursor or other on-screen pointer to designate a window or selection on a display as the currently active window or selection. For example, the user may designate a window or selection as active by placing or moving the cursor over the window or selection. The designated window or selection is then typically highlighted, meaning that its appearance is changed. A highlighted window or selection is usually brighter, to differentiate it from other, non-active windows or selections present on the display.
Conventionally, such highlight effects are created by moving or copying the pixel information of the designated window or selection from its original location in memory to a new memory location, and by modifying the moved or copied pixel information to create the desired highlight effect. The memory may be frame buffer including a Dynamic Random Access Memory (hereafter xe2x80x9cDRAMxe2x80x9d). The modified pixel information may then be retrieved from the new location in the DRAM and output to a display as a highlighted version of the original video and/or graphics data. When the designated window and/or selection is deselected, the original pixel information is swapped back from its new location to its original location in the DRAM.
The DRAM may be external to the graphics and video decoder or may be internal thereto. In any event, the highlighted video and/or graphics data stream must be transferred into and out of the DRAM in a sufficiently rapid manner as to keep pace with the incoming data originating from, for example, a Digital Versatile Disk (DVD) device. Thus, the bandwidth of the video and/or graphics decoderxe2x80x94external memory interface is a significant consideration in the design of such digital video and/or graphics processing devices. There is a need, therefore, to devise methods and devices that reduce the need for high-bandwidth interfaces between the graphics processor and the DRAM. The process of swapping pixel information into and out of a frame buffer, moreover, is a time consuming one. Indeed, the delays caused by repeated swapping pixel information into and out of memory may visibly slow down the highlighting process, such that the highlighting process appears to be incomplete while the pixel swapping is being carried out. What are also needed, therefore, are methods and devices to create highlight effects in a video and/or graphics data stream that do not necessitate repeated swapping of pixel information into and out of memory and that do not incur the delays attendant with such swapping.
The present invention, therefore, provides devices and methods for methods and devices that reduce the need for high-bandwidth interfaces between the graphics processor and the DRAM. The present invention also provides methods and devices to create highlight effects in a video and/or graphics data stream that do not necessitate repeated swapping of pixel information into and out of memory and that do not incur the delays attendant with such swapping.
In accordance with the principles of the invention above and those that will be mentioned and will become apparent below, a method for creating highlight effects in video and/or graphics data comprising the steps of receiving a video and/or graphics data stream from an input source; performing an arithmetic operation upon at least one color component value of constituent pixels of the data stream that are to be hightlighted to provide a selectively highlighted video and/or graphics data stream; and outputting the selectively highlighted video and/or graphics data stream directly to a display.
According to further embodiments of the present invention, the arithmetic operation may be either addition or subtraction. The input source may include a frame buffer, which may include a dynamic random access memory (DRAM). A step of clamping one or more color component values within a selected value range may be carried out. The value range may be selected based upon the color space of the video and/or graphics data stream.
The color component value(s) may be clamped to a selected respective predetermined high value when performance of the selected arithmetic operation results in the color component value exceeding the predetermined high value and may be clamped to a selected respective predetermined low value when performance of the selected arithmetic operation results in the color component value falling below the predetermined low value. When the color space of the video and/or graphics data stream is YCbCr, the predetermined high value for the Y color component value may be set to 235 and the predetermined high value for the Cb and Cr color component values may be set to 240. When the color space of the video and/or graphics data stream is YCbCr, the predetermined low value for the Y, Cb and Cr color component values may be set to 16. When the color space of the video and/or graphics data stream is YUV, the predetermined high value for the Y color component value may be set to 255, the predetermined high value for the U color component value may be set to 112 and the predetermined high value for the V color component value may be set to 157. When the color space of the video and/or graphics data stream is YUV, the predetermined low value for the Y color component values may be set to 0, the predetermined low value for the U color component value may be set to xe2x88x92112 and the predetermined low value for the V color component value may be set to xe2x88x92157.
A step of specifying a starting location and a size of a rectangular region wherein pixels of the data stream are to be highlighted may also be carried out. A highlight control bitmap data set may also be specified, each bit within the bitmap data set being associated with a pixel of the data stream and controlling the performance of the arithmetic operation. The arithmetic operation performing step may leave the color component value(s) unchanged when an associated bit within the bitmap data set is in a first logical state and may change the color component value(s) when the associated bit within the bitmap data set is in a second logical state. A clamping step may be performed to clamp the color component value(s) within a selected value range. A step of storing a highlight control bit in a control register may be carried out, the highlight control bit controlling the performance of the arithmetic operation. An incremental value may be defined for each of the color component value(s), each of the incremental values being either added to or subtracted from respective ones of the color component value(s) to highlight a pixel associated therewith.
The present invention may also be regarded as a multimedia decoder, including a memory bus and a control bus; a processor coupled to the memory bus and to the control bus, the processor controlling an operation of the decoder; a memory controller coupled to the memory bus, the memory controller being adapted to interface the decoder with a memory adapted to store video and/or graphics data, and a highlight processing module coupled to the memory and control buses, the highlight processing unit receiving a video and/or graphics data stream from the memory, and receiving instructions from the processor via the control bus to perform an arithmetic operation upon at least one color component value of each pixel of the data stream that is to be hightlighted to provide a selectively highlighted video and/or graphics data stream and to output the selectively highlighted video and/or graphics data stream to a display without updating the memory video and/or graphics data stored in memory.
According to further embodiments, the highlight processing module may include at least one programmable highlight control register, the programmable register(s) storing a highlight control value that is effective to enable and disable highlighting of the data stream. The highlight processing module may include internal memory, the internal memory being adapted to store a control bitmap data set, each bit within the bitmap data set being associated with a corresponding pixel of the data stream and controlling the performance of the arithmetic operation. The highlight processing module may clamp the color component value(s) within a selected value range that may be selected based upon the color space of the video and/or graphics data stream.